
function EvaluaSeleccionSolo2_3()
  
[fg, tex] = fopen('resultados_evaluacion_seleccion_2_3_12_jul.csv', 'a');

% fprintf(fg, '\nResultados de Caliz\n');
% cd caliz_seleccion
% cargaYEvalua(fg);
% cd ..
%             
% fprintf(fg, ' \nResultados de PALITO \n');
% cd palito_seleccion
% cargaYEvalua(fg);
% cd ..

fprintf(fg, ' \nResultados de caliz Multiples clases con defectos \n');
cd caliz_multi_seleccion
cargaYEvalua(fg);
cd ..

fprintf(fg, ' \nResultados de PALITOS MULTIPLES CLASES CON DEFECTO \n');
cd palito_multi_seleccion
cargaYEvalua(fg);
cd ..




st = fclose(fg);

end

function cargaYEvalua(fg)

fprintf(fg, 'Estrategia, Caracteristicas, LDA, Bayes, KNN-10\n');
load est2   ;
evalua(2, est2E,est2T,fg);
load est3   ;
evalua(3, est3E,est3T,fg);
end 

function evalua(j,estE, estT,fg)
cantidadCaracteristicas = [4 20];

load matrizTrainingTest ;%Xe De Xt Dt indice_entrenamiento indice_prueba cantidadCaracteristicas ;
[fi, tex] = fopen('error_evaluacion_caracteristicas.txt', 'a');
for i=1:length(cantidadCaracteristicas)
    final =cantidadCaracteristicas(i);
    %    est1T=zeros(size(cantidadCaracteristicas, 2),   size(Xt,1) ,max(cantidadCaracteristicas));
    X=     zeros (size(Xe,1), final);
    X_test=zeros(size(Xt,1), final);
    X = squeeze(estE(i,:,1:final));
    X_test = squeeze(estT(i,:,1:final));
    
    PLDA =0;
    PKNN=0;
    PMIN=0;
%     try
%         PLDA = evaluaLDA(X, De, X_test,Dt);
%     catch me1
%         fprintf(fi, 'ERROR LDA  %d %s \n',cantidadCaracteristicas(i), me1.message );
%     end
    try
        PKNN = evaluaKNN(X, De, X_test,Dt);
    catch me1

        fprintf(fi, 'ERROR KNN  %d %s \n',cantidadCaracteristicas(i), me1.message );
    end
    
    try
        PMIN = evaluaDminimal(X, De, X_test,Dt);
        
    catch me1
        fprintf(fi, 'ERROR min  %d %s \n',cantidadCaracteristicas(i), me1.message );
    end

    fprintf(fg, '\n %d, %d, %f, %f, %f',j,final, PLDA,PKNN, PMIN);
    
end
st = fclose(fi);
end


function P = evaluaLDA(X, De, X_test, Dt)
dsXT = lda(X,De, X_test);
[TXT ,pXT]  = confusion(Dt,dsXT);
P = mean(pXT)*100;
end


function P = evaluaKNN(X, De, X_test, Dt)
dsXT = knn(X,De, X_test,10);
[TXT ,pXT]  = confusion(Dt,dsXT);
P = mean(pXT)*100;
end

function P = evaluaDminimal(X,De,X_test, Dt)
dsXT = dminimal(X,De, X_test);
[TXT ,pXT]  = confusion(Dt,dsXT);
P = mean(pXT)*100;
end
